package com.hanamaki.demo02;

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Ignore;
import org.testng.annotations.Test;

import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;

/**
 * 1.测试 Selenium中的弹窗
 */
public class SeleniumTemplate05 {

    //注册驱动
    /**
     * driver代表浏览器对象
     */
    WebDriver driver;
    @BeforeMethod
    public void setUp() {
        //注册本地火狐打开的位置
        System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");
        //初始化
        driver = new FirefoxDriver();
    }

    /**
     * 测试普通弹窗
     */
    @Test(enabled = false)
    public void alert() {

        driver.get("file:///C:/Users/edz/Desktop/testhtml/exam/testSelenium.html");

        /* 测试  alert  */
        /* 定位元素  //body/input[1] */
        WebElement alert = driver.findElement(By.xpath("//body/input[1]"));
        /* 点击弹窗 alert */
        alert.click();

        /* 如果想要点击 弹窗中的 确定 或者 取消  需要使用 内置方法（switchTo()） 来切换光标移动到 alert弹窗中 */
        Alert alert1 = driver.switchTo().alert();
        /* 执行 确定 返回操作 */
        /* 获得 弹窗的文本值 */
        String text = alert1.getText();
        System.out.println(text);
        /* 点击同意 */
//        alert1.accept();
        /* 点击取消 */
        alert1.dismiss();

    }

    /**
     * 测试确认弹窗
     */
    @Ignore
    @Test
    public void confirmation() {

        driver.get("file:///C:/Users/edz/Desktop/testhtml/exam/testSelenium.html");

        /* 测试  confirmation  */
        /* 定位元素  //body/input[2] */
        WebElement confirmation = driver.findElement(By.xpath("//body/input[2]"));
        /* 点击弹窗 confirmation */
        confirmation.click();

        /* 如果想要点击 弹窗中的 确定 或者 取消  需要使用 内置方法（switchTo()） 来切换光标移动到 confirmation 弹窗中 */
        Alert alert1 = driver.switchTo().alert();
        /* 执行 确定 返回操作 */
        /* 获得 弹窗的文本值 */
        String text = alert1.getText();
        System.out.println(text);
        /* 点击同意 */
//        alert1.accept();
        /* 点击取消 */
        alert1.dismiss();

    }

    /**
     * 测试输入对话框
     */
    @Test
    public void prompt() throws InterruptedException {

        driver.get("file:///C:/Users/edz/Desktop/testhtml/exam/testSelenium.html");

        /* 测试  prompt  */
        /* 定位元素  //body/input[3] */
        WebElement prompt = driver.findElement(By.xpath("//body/input[3]"));
        /* 点击弹窗 prompt */
        prompt.click();

        /* 如果想要点击 弹窗中的 确定 或者 取消  需要使用 内置方法（switchTo()） 来切换光标移动到 confirmation 弹窗中 */
        Alert alert1 = driver.switchTo().alert();
        /* 执行 确定 返回操作 */
        /* 获得 弹窗的文本值 */
        String text = alert1.getText();
        System.out.println(text);

        /* 向输入对话框中写 值 */
        alert1.sendKeys("hanamaki");
        Thread.sleep(3000);

        /* 点击同意 */
//        alert1.accept();
        /* 点击取消 */
        alert1.dismiss();

    }
    @AfterClass
    public void close() {
//        driver.quit();
    }
}
